#ifndef DEPLACEMENT_H
#define DEPLACEMENT_H

#include "blob.h"
#include "balle.h"

class Deplacement
{
	public:
		//! Constructeur par défaut
		Deplacement();

		//! Constructeur paramétré
		Deplacement(const float x1min, const float x1max, const float x2min, const float x2max, const int hauteur, const int base);

		//! Destructeur
		~Deplacement();

		//! Déplace le blob renseigné sur la gauche
		void deplacerGauche(Blob & b, const int val);

		//! Déplace le blob renseigné sur la droite
		void deplacerDroite(Blob & b, const int val);

		//! Fait sauter le blob renseigné
		void saut(Blob & b, const int val);

		//! Renvoie VRAI si le blob renseigné est en saut
		bool enSaut(Blob & b);

		//! Initie un saut pour le blob renseigné
		void sauter(Blob & b, const int val);

		//! Déplace la balle
		void deplacer(Balle & b ,const float val);

		//! Renvoie la gravité
		vec2D getGravite();

	private:
		//! Limites du terrain
		float x1min, x1max, x2min, x2max;

		//! Renvoie 0 si à gauche, 1 si à droite
		int localiseBlob(Blob & b);

		int hauteur, base;

		//! Gravité
		vec2D gravite;
};

#endif /* DEPLACEMENT_H */
